﻿var geocoder, map, markersArray = [],citylocation;
//初始化地图函数,自定义函数名init
function init(lat, lng) {
    console.log("证明有效");
    //中心显示
    var center = new qq.maps.LatLng(lat, lng);
    //定义map变量 调用 qq.maps.Map() 构造函数   获取地图显示容器
    map = new qq.maps.Map(document.getElementById("container"), {
        center: center,      // 地图的中心地理坐标。
        zoom: 15//放大级别
    });
    //添加覆盖物
    addMarker(center);
    
    //绑定单击事件  传递事件函数名称
    var listener = qq.maps.event.addListener(map, 'click', function (event) {
        //添加标记
        addMarker(event.latLng);
        //经纬度
        $("#lat").val(event.latLng.getLat());
        $("#lng").val(event.latLng.getLng());
    });

    //调用地址解析类
    geocoder = new qq.maps.Geocoder({
        complete: function (result) {
            map.setCenter(result.detail.location);
            var marker = new qq.maps.Marker({
                map: map,
                position: result.detail.location
            });
        }
    });
    if (lat == 0) {
        //获取城市列表接口设置中心点
        citylocation = new qq.maps.CityService({
            complete: function (result) {
                map.setCenter(result.detail.latLng);
            }
        });
        //调用searchLocalCity();方法    根据用户IP查询城市信息。
        citylocation.searchLocalCity();
    }
}

//添加覆盖物
function addMarker(location) {
    //清除覆盖层
    clearOverlays();
    var marker = new qq.maps.Marker({
        position: location,
        map: map
    });
    markersArray.push(marker);
}

//清除覆盖层
function clearOverlays() {
    if (markersArray) {
        for (i in markersArray) {
            markersArray[i].setMap(null);
        }
    }
}

//地址转换为坐标
function codeAddress(address) {
    if (address.length > 0) {
        //通过getLocation();方法获取位置信息值
        geocoder.getLocation(address);
        geocoder.setComplete(function (result) {
            console.log(result);
            //经纬度
            $("#lat").val(result.detail.location.lat);
            $("#lng").val(result.detail.location.lng);
            //地图中心
            map.setCenter(result.detail.location);
            //添加覆盖物
            addMarker(result.detail.location);
        })
    }
}